const BASE_URL = getApp().globalData.utils.baseUrl //基础url
// const IMG_BASE_URL = getApp().globalData.IMG_BASE_URL
const http = {
	baseUrl: BASE_URL,
	//请求方法
	request(config) {
		//config:请求配置对象，具体值参照uniapp文档
		beforeRequest(config)
		config.url = `${this.baseUrl}${config.url}`
		//创建一个Promise对象在里面发送请求
		return new Promise((resolve, reject) => {
			uni.request(config)
				//请求成功
				.then(res => {
					const response = beforeResponse(res)
					resolve(response)
				})
				//请求失败
				.catch(err => {
					console.log(err)
					errorHandle(err)
					reject(err)
				})
		})
	},
	//get请求data 请求的参数 auth需不需要验证如token(true或者false)
	get(url, data, auth) {
		return this.request({
			url: url,
			data: data,
			auth: auth,
			method: "GET"
		})
	},
	//put请求data 请求的参数 auth需不需要验证如token(true或者false)
	put(url, data, auth) {
		return this.request({
			url: url,
			data: data,
			auth: auth,
			method: "PUT"
		})
	},
	//post请求data 请求的参数 auth需不需要验证如token(true或者false)
	post(url, data, auth) {
		return this.request({
			url: url,
			data: data,
			auth: auth,
			method: "POST"
		})
	},
	//post请求data 请求的参数 auth需不需要验证如token(true或者false)
	delete(url, data, auth) {
		return this.request({
			url: url,
			data: data,
			auth: auth,
			method: "Delete"
		})
	},

}
//请求拦截器
const beforeRequest = (config) => {
	//请求之前想做什么操作
	return config
}
//响应拦截器
const beforeResponse = (response) => {
	//请求之前想做什么操作
	if (response.data.code == 401) {
		uni.showToast({
			title: response.data.message,
			icon: 'none',
		})
	}
	return response.data
}

const errorHandle = (err) => {
	//请求之前想做什么操作
	console.log('网络异常，请求失败', err)
	return err
}

export default http